﻿// 麻省理工学院许可证
//
// 版权所有 (c) 2023-2025 缄默 联系电话/18521355630 
//
// 特此免费授予获得本软件的任何人以处理本软件的权利，但须遵守以下条件：在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
//
// 软件按“原样”提供，不提供任何形式的明示或暗示的保证，包括但不限于对适销性、适用性和非侵权的保证。
// 在任何情况下，作者或版权持有人均不对任何索赔、损害或其他责任负责，无论是因合同、侵权或其他方式引起的，与软件或其使用或其他交易有关。

using Infragistics.Win;

namespace LvcChong
{
    public static class UltraComboEditorExtensions
    {
        public static void SetDataSource(this Infragistics.Win.UltraWinEditors.UltraComboEditor comboEditor, object datasource, string displayField = "Name", string valueField = "Value", bool multiCheck = false)
        {
            if (datasource is ValueList valueList) datasource = valueList.ValueListItems;
            comboEditor.UpdateUI(() =>
            {
                comboEditor.DataSource = datasource;
                comboEditor.DisplayMember = displayField;
                comboEditor.ValueMember = valueField;

                if (multiCheck)
                {
                    comboEditor.CheckedListSettings.CheckBoxAlignment = ContentAlignment.MiddleLeft;
                    comboEditor.CheckedListSettings.CheckBoxStyle = CheckStyle.CheckBox;
                    comboEditor.CheckedListSettings.EditorValueSource = EditorWithComboValueSource.CheckedItems;
                    comboEditor.CheckedListSettings.ListSeparator = ",";
                    comboEditor.CheckedListSettings.ItemCheckArea = ItemCheckArea.Item;
                }
            });
        }

        public static void SetDataSource(this Infragistics.Win.UltraWinEditors.UltraOptionSet optionSet, object datasource, string displayField = "Name", string valueField = "Value")
        {
            if (datasource is ValueList valueList) datasource = valueList.ValueListItems;
            optionSet.UpdateUI(() =>
            {
                optionSet.DataSource = datasource;
                optionSet.DisplayMember = displayField;
                optionSet.ValueMember = valueField;
            });
        }
    }
}